package edu.imu.question.service.impl;

import edu.imu.question.entity.Questionnaire;
import edu.imu.question.entity.User;
import edu.imu.question.mapper.QuestionnaireMapper;
import edu.imu.question.util.HttpServletUtil;
import org.springframework.beans.factory.annotation.Autowired;

import static edu.imu.question.config.GlobalConstant.SESSION_KEY_CURR_USER;

public abstract class QuestionnaireBaseService {
    private final QuestionnaireMapper questionnaireMapper;

    @Autowired
    protected QuestionnaireBaseService(QuestionnaireMapper questionnaireMapper) {
        this.questionnaireMapper = questionnaireMapper;
    }

    /**
     * 根据id获取问卷
     *
     * @param questionnaireId 问卷id
     */
    public Questionnaire get(long questionnaireId) {
        return questionnaireMapper.find(questionnaireId);
    }

    /**
     * 根据问卷id获取登录用户的问卷，如果该登陆用户下没有对应的问卷返回null
     *
     * @param questionnaireId 问卷id
     */
    public Questionnaire getUserQuestionnaire(Long questionnaireId) {
        final User u = (User) (HttpServletUtil.getSession().getAttribute(SESSION_KEY_CURR_USER));
        if (u == null)
            return null;
        return questionnaireMapper.findByIdAndUserId(questionnaireId, u.getId());
    }
}
